'''
题目：企业发放的奖金根据利润提成。

利润(I)低于或等于10万元时, 奖金可提10%
利润高于10万元, 低于20万元时, 低于10万元的部分按10%提成, 高于10万元的部分, 可提成7.5%
20万到40万之间时, 高于20万元的部分, 可提成5%
40万到60万之间时高于40万元的部分, 可提成3%
60万到100万之间时, 高于60万元的部分, 可提成1.5%, 
高于100万元时, 超过100万元的部分按1%提成, 

从键盘输入当月利润I, 求应发放奖金总数？

程序分析：请利用数轴来分界, 定位。
0-----10-----20-----40-----60-------100----------------
  |      |      |      |       |         |            
  10%    7.5%   5%      3%     1.5%       1%            
'''

# ls: [1, 10, 30] val: 15 => 2
# ls: [1, 10, 30] val: 10 => 2
# ls: [1, 10, 30] val: 6 => 1
def findIndexOfVal(ls, val):
  copyLs = ls.copy()
  # 如果列表中已经有val 直接返回 val的索引
  if val in copyLs:
    index = copyLs.index(val)
    return index + 1 # 应该放在相同值的后面
  else:
    copyLs.append(val)
    copyLs.sort()
    index = copyLs.index(val)
    return index


def getJiangJin1():
  # 用户输入的利润
  liRun = int(input('请输入利润(单位万元)： '))
  # 奖金级别界线列表
  jieXianLs = [0, 10, 20, 40, 60, 100]
  # 界线对应的比率列表
  allBiLvLs = [0.1, 0.075, 0.05, 0.03, 0.015, 0.01]

  
  jiangJin = 0
  maxJieXianIndex = findIndexOfVal(jieXianLs, liRun) - 1
  maxJieXian = jieXianLs[maxJieXianIndex]
  chaoChuPart = liRun - maxJieXian 

  usingJieXianLs = jieXianLs[0:maxJieXianIndex + 1]
  # beforePartLs: 后 - 前 形成的差值列表
  beforePartLs = [usingJieXianLs[index + 1] - jieXian for index, jieXian in enumerate(usingJieXianLs) if index != len(usingJieXianLs) - 1]
  partLs = beforePartLs + [chaoChuPart]
  biLvLs = allBiLvLs[0:len(partLs)]
  
  suanShiLs = []
  # 差值列表 和 比率列表 元素对应相乘
  for part, biLv in zip(partLs, biLvLs):
    jiangJin += part * biLv
    suanShiLs.append('%d * %.3f' % (part, biLv))
    
    biLvIndex = biLvLs.index(biLv)
    jieXian = jieXianLs[biLvIndex]
    jieXianJiangJin = part * biLv
    print('jieXianJiangJin:', jieXian, '->', jieXianJiangJin)

  print('计算公式为:', ' + '.join(suanShiLs))
  print('应该发放的奖金总数为 %s 万元' % jiangJin)


getJiangJin1()

print('-' * 20)

def getJiangJin2():
  liRun = int(input('净利润(单位 万): '))
  arr = [100,60,40,20,10,0]
  rat = [0.01,0.015,0.03,0.05,0.075,0.1]
  totalJiangJin = 0
  for idx in range(0,6):
    jieXian = arr[idx]
    if liRun > jieXian:
      jieXianJiangJin = (liRun - jieXian) * rat[idx]
      totalJiangJin += jieXianJiangJin
      print('jieXianJiangJin:', jieXian, '->', jieXianJiangJin)
      liRun = jieXian
  print(totalJiangJin)


getJiangJin2()